
//long end = System.currentTimeMillis();获取系统时间（毫秒）


public class TestDemo {
    //时间复杂度中 N 代表的是问题的规模-代码中不一定必须有N

    //1.冒泡排序的时间复杂度计算挺有意思-(算时间复杂度不要只看代码，还要看思想)
    //（1）最好情况：O(N)
    //（2）最坏情况：O(N^2)

    //2.二分查找:log₂N+1
    //

    //3.递归的时间复杂度：递归次数-每次递归后代码的执行次数
    //斐波那契数列：2^0+2^1+2^2+……+2……2^(n-1)（这是一个大致的估计，中间可能有很多数是没有的，不过不影响）
    //等比数列求和：(-1)*(1-2^n)=2^n-1
    //O(2^N)

//空间复杂度：中临时占用存储空间大小的量度
//斐波那契只会存一边的栈帧O(N)

//  常见复杂度：O(1)>O(logN)>O(N)>O(NlogN)>O(N^2)
}


//经典例题复盘：
//1.求时间复杂度
//void fun(int n) {
//    int i=l;
//    while(i<=n)
//        i=i*2;
//}

//2.求空间复杂度
//    public static int[][] get2Array(int n){
//    int[][] array = new int[n][];
//    for(int i = 0; i < n; i++) {
//        array[i] = new int[n-i];
//        n--;
//    }
//
//    return array;
//}

//3.某算法的递推公式是T(n)=T(n-1)+n，T(0)=1，则求该算法中第n项的时间复杂度为（）